﻿using Loyalty.Model.Poco;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Loyalty.Infrastructure.EntityFramework.Poco
{
    public interface IRepositoryBase<T> where T : class
    {
        
        ErrorExeptionsResult<T> Add(T Entity);
        ErrorExeptionsResult<T> Delete(T Entity);       
        ErrorExeptionsResult<T> Edit(T Entity);

        ErrorExeptionsResult<T> Get(Int64? id);
        ErrorExeptionsResult<T> GetAll(int? PageNumber, int? RowPerPage, DynamicSearchEngine Filters);
        ErrorExeptionsResult<T> GetAll(T item, DynamicSearchEngine Filters);
        ErrorExeptionsResult<T> GetAll(DynamicSearchEngine Filters);
        ErrorExeptionsResult<T> GetAll(T Entity, int? PageNumber, int? RowPerPage, DynamicSearchEngine Filters);

        ErrorExeptionsResult<IncomingUse> GetIncomingUse(IncomingUse Entity);
    }
}
